import { setIsFetching } from '../action/fetch';
import { REQUEST_TAIL, FAILURE_TAIL, SUCCESS_TAIL } from '../utils/actionType';

import {  MtToast } from 'martian-ui';
/*
 *  post请求
 *  url:请求地址
 *  params:参数,这里的参数格式是：{param1: 'value1',param2: 'value2'}
 *  callback:回调函数
 * */
export function post (type, url, actionName, params) {
	return dispatch => {
		dispatch(setIsFetching(`${actionName}${REQUEST_TAIL}`))
	return fetch(url,{
		method: 'POST',
		headers: {
			'Accept': 'application/json',
			'Content-Type': 'multipart/form-data'
		},
		body:params
	})
		.then((response) => {
		  console.warn('response.status'+JSON.stringify(response.status))
      if (response && response.status && JSON.stringify(response.status) !== '200'){
        return (
          console.warn('response'+JSON.stringify(response))
        )
      }
      else {
        return response.json()
      }

    }).then(responseData => {
			dispatch(setIsFetching(`${actionName}${SUCCESS_TAIL}`))
			return Promise.resolve(responseData);


		}).catch((error) => {
			dispatch(setIsFetching(`${actionName}${FAILURE_TAIL}`))
			return Promise.reject(error);

		})
	}
}


/*
 *  get请求
 *  url:请求地址
 *  params:参数
 *  callback:回调函数
 * */
export function get(url, actionName) {


	return dispatch => {
		dispatch(setIsFetching(`${actionName}${REQUEST_TAIL}`))
		return fetch(url)
			.then(response => response.json()).then(responseData => {
			dispatch(setIsFetching(`${actionName}${SUCCESS_TAIL}`))
				return Promise.resolve(responseData);


			}).catch((error) => {
			dispatch(setIsFetching(`${actionName}${FAILURE_TAIL}`))
				return Promise.reject(error);

		})
	}

}

/*
 *  post请求
 *  url:请求地址
 *  params:参数,这里的参数要用这种格式：'key1=value1&key2=value2'
 *  callback:回调函数
//  * */
// export function postForm(url,params,callback) {
// 	//fetch请求
// 	fetch(url,{
// 		method: 'POST',
// 		headers: {
// 			'Content-Type': 'application/x-www-form-urlencoded',
// 		},
// 		body: params
// 	})
// 		.then((response) => response.json())
// 		.then((responseJSON) => {
// 			callback(responseJSON)
// 		})
// 		.catch((error) => {
// 			console.log("error = " + error)
// 		});
// }
